package com.itheima.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.bean.Dish;
import com.itheima.dto.DishDto;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface DishService extends IService<Dish> {

    /**
     * 保存菜品基本信息和口味信息到数据库
     * @param dishDto 封装菜品基本信息和口味信息数据
     */
    //添加事务管理  SpringBoot项目中添加事务管理：1.在接口方法上打上@Transactional注解 2.启动类打上注解@EnableTransactionManagement 启用事务注解驱动支持
    @Transactional
    void saveWithFlavor(DishDto dishDto);

    /**
     * 根据id查询菜品及其口味信息封装到DishDto对象
     * @param id
     * @return
     */
    DishDto findById(Long id);

    /**
     * 修改菜品基本信息及其口味信息
     * @param dishDto
     */
    @Transactional
    void updateWithFlavor(DishDto dishDto);

    /**
     * 删除菜品信息
     * @param ids
     */
    @Transactional
    void deleteWithFlavor(List<Long> ids);
}
